Deterministic finite automata